\section{Application}
\subsection{Application Flow Chart}
아주 개략적인 프로그램의 흐름은 다음과 같다.\\
\begin{minipage}{\textwidth}
\centering
\includegraphics[width=12cm]{flowchart}
\end{minipage}
어플리케이션의 프로세스는 다음과 같다.\\
\begin{minipage}{\textwidth}
\centering
\includegraphics[width=12cm]{processchart}
\end{minipage}
\subsection{Implementation}
사용자의 눈에 보여지는 부분의 구현은 다른 android 어플리케이션과 
다르지 않으므로 생략하고 이 장에서는 VisionSpice구현을 위해 
필수적인 opencv와 spice3f5를 어떤식으로 구현하였는지를 설명한다.\\
회로 인식을 위한 opencv와 회로 분석을 위한 spice3f5를 크로스 컴파일 하여
정적 라이브러리로 만든다. 이 후 라이브러리를 사용하기 위해선 
자바가 아닌 네이티브 코드를 작성해야 하므로 jni디렉토리를 만들어
필요한 코드들을 구현하고 그 하위에 include, lib 디렉토리를 만들어
opencv 헤더와 라이브러리를 위치시킨다. spice 디렉토리를 만들어
그 아래 마찬가지로 include와 lib 디렉토리를 만들어 spice3f5에 필요한
헤더와 정적 라이브러리를 위치 시키고 본래 spice3f5의 main함수에
해당하는 부분을 사용에 편하게 수정하고 기타 spice3f5에 관련한 동작을
수행할 함수를 추가한다.\\
이 후에 jni 디렉토리에 Android.mk를 규칙에 맞게 작성하여
최종적으로 libvision-spice.so 공유 라이브러리를 생성하고 이를
자바에서 로드하여 opencv및 SPICE를 이용한 어플리케이션을 만든다.
\subsection{Interface}
VisionSpice는 몇번의 터치와 입력만으로도 회로도로부터 원하는 정보를
쉽게 얻을 수 있다.\\
프리뷰 화면에선 버튼을 제외한 화면을 터치하여 포커스를 맞춘 후
사진을 찍는다. 사진을 찍게 되면 인식 버튼이 활성화되고 이 버튼을
누르게 되면 인식 된 이미지가 화면에 출력된다.
인식된 회로의 요소들의 영역을 터치하면 요소의 파라미터를 입력한다.
모든 요소의 파라미터를 입력하였으면 분석 방법을 설정한다.
분석 방법을 알맞게 입력하면 분석 방법에 따른 결과창이 출력된다.
